Various types of image display devices have been developed during the past decades of time. More recently, by employing Liquid-Crystal Display (LCD), Light-Emitting Diode (LED), Organic LED (OLED), and thin-film transistor technologies, it has become feasible to miniaturize image display devices, and yet achieve an impressive degree of display pixel resolution. Such miniaturization has allowed 3-dimensional (3-D) head-worn imaging apparatus to be manufactured, for example for providing users with a 3-D immersion experience, for example when playing computer games, when implementing professional flight simulators, and similar.
However, when creating a 3-D image sequence, for example an animated video, using one or more data processors, considerable computing capacity is required. Moreover, software executing upon the one or more data processors has to be configured to execute efficiently on the one or more data processors, in order for users to receive a smooth realistic 3-D experience.
Such software is conventionally implemented using software applications that render 3-D graphics data by calling upon one or more drawing functions in one or more databases, namely “libraries”, provided by an operating system coordinating the aforesaid one or more data processors, such as OpenGL and Direct3D; “OpenGL” and “Direct3D” are registered trademarks. In turn, in a hierarchical manner, these one or more drawing functions call upon lower level drawing functions in display-driver software associated with graphics hardware.
Moreover, in conventional operation, a view to be experienced by a given user is typically drawn from a perspective of a camera positioned in a given scene. The software, when executed on the one or more data processors, results in additional matrix multiplications being performed that change various parameters, for example a field of view and such like. Moreover, such multiplications usually include use of a camera matrix, a world matrix and a projection matrix as a part of computations executed by the one or more data processors.
In an example implementation, one or more displays, that are provided with processed image data for display to a given user, are housed in a head-mountable apparatus, namely a “head mounted unit”, that is operable to provide two distinctive viewing perspectives of a given synthesized scene to each respective eye of the given user. Thus, the given user, in operation of the apparatus, is able to turn his/her head to look around as desired, and the software is operable to modify images presented in the one or more displays accordingly so as to provide the user with a sense of full immersion within the given synthesized scene.
A contemporary augmented reality system typically superimposes a virtual scene over an image of a real environment. Mostly, this requires a fixed view target and an interactive change of the viewing location, for example when the user is looking from different sides of a table with a virtual model placed upon a horizontal upper surface of the table.
Thus, as elucidated in the foregoing, contemporary virtual reality systems employ 180° or 360° monoscopic or stereoscopic video or imagery to create a sense of immersion. These virtual reality systems allow their users to rotate their heads during such a sense of immersion, namely to look around. However, such contemporary known systems are unable to react to a change in a given user's location within the scene in a satisfactory realistic manner, for example when skewing to look around a corner within the scene, and so forth. Such a lack of reaction is capable of potentially destroying, at least momentarily, an illusion to the given user of total immersion within the scene.
Moreover, in contemporary times, there is only a very limited availability of content for virtual reality systems, and satisfactory solutions for creating required views from contemporary software applications such as computer games, and for streaming such views via a data communication network, for example the contemporary Internet. Known approaches generate, for example, virtual reality (VR) content with required views only on a spatially local basis.
Contemporary interactive devices, for example computing devices, gaming consoles and workstations, employ a contemporary arrangement of software applications being run in monoscopic 3-D, namely having only a single perspective. However, there exist methods of converting data output of such monoscopic 3-D software applications into stereoscopic 3-D with two perspectives, for example for purposes of simulation and gaming. Typically, such stereoscopic output can be in a variety of potential formats, for example side-by-side, top-down or frame-interleaved or even time-interleaved, wherein the variety of formats can be displayed using four data buffers that include two front data buffers concerning visible left and right scenes and two back data buffers concerning invisible left and right scenes. In operation, either a given software application or a graphic driver employed outputs a correspondingly synthesized image to an attached stereoscopic viewing device, such as a Virtual Reality (VR) device, a monitor or a projector with an associated user employing active shutter glasses, a 3-D television with any other form of glasses (e.g. polarization glasses), or even a new glasses-free 3-D television.
Furthermore, there exist systems that are operable to capture and to stream a 2-dimensional (2-D) image representation, namely a “monoscopic image” representation, via a data communication network, for example the Internet, for example via a web browser or a software application of a mobile telephone. In such a known arrangement, a content delivery system distributes live content from an ingest server potentially to the entire World. However, a geographical proximity of the ingest server determines a quality of feed of such live content, for example based upon data communication bandwidth limitations. In such operation, a unique Uniform Resource Locator (URL) is provided by the ingest server to inject the live content as a data stream.